var data=[
  {
    name:"常用正则",
    children:[
      {
        name:"消除首位空格",
        content:`/(^\s*)|(\s*$)/g`
      },{
        name:"消除所有空格",
        content:`/\s/g`
      },{
        name:"验证手机号(国内)",
        content:"/^1[34578]\d{9}$/"
      },{
        name:"验证身份证(18位)",
        content:"/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/"
      },{
        name:"验证邮箱",
        content:"/^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$/"
      }
    ]
  },{
    name:"截取，插入字符串",
    use:"传入目标数组a，需要插入的参数b，插入的位置c，是否改变原数组a的参数d(false)",
    content:"function arraySplice(a,b,c,d){var var e=d?a:e=[...a];e.splice(c,0,b);return e}"
  },{
    name:"生成特定数组",
    use:"a是生成数组的长度，b为生成数组中的元素",
    content:"function(a,b){return new Array(a).fill('').map(val=>b)}"
  },{
    name:"获取图片的加载状态",
    content:"function loadImg(url,callback){var img=new Image();img.src=url;if(callback){callback()};return img.complete}"
  },{
    name:"将时间往前面推算",
    use:"传入参数--年份n,返回时间段的数组,type:month||date,默认为date",
    content:`
      functiong time(n,type){
        return type=="month"?
          [(new Date().getMonth()==11?new Date().getFullYear():(new Date().getFullYear()-n))+"-"+(new Date().getMonth()==11?"01":((new Date().getMonth() + 2)>9?(new Date().getMonth() + 2):"0"+(new Date().getMonth() + 2))),new Date().getFullYear() + "-" + ((new Date().getMonth() + 1)>9?(new Date().getMonth() + 1):"0"+(new Date().getMonth() + 1))]
          :[(new Date().getMonth()==11?new Date().getFullYear():(new Date().getFullYear()-n))+"-"+((new Date().getMonth()==11?"01":((new Date().getMonth() + 2)>9?((new Date().getMonth() + 2)):("0"+(new Date().getMonth() + 2)))))+"-"+(new Date().getDate()>9?new Date().getDate():("0"+new Date().getDate())),new Date().getFullYear()+"-"+((new Date().getMonth() + 2)>9?((new Date().getMonth() + 2)):("0"+(new Date().getMonth() + 2)))+"-"+(new Date().getDate()>9?new Date().getDate():("0"+new Date().getDate()))]}`
  },{
    name:"刷新获取menu中的title",
    use:"array是menu数组,path是当前路由",
    content:`
      <p>getTimebarName(array,path){</p>
        <p style="text-indent:40px">for(var i=0;i<array.length;i++){</p>
          <p style="text-indent:60px">if(array[i].url==path){</p>
            <p style="text-indent:80px">return array[i].name;</p>
          <p style="text-indent:60px">}else if(array[i].children&&array[i].length>0){</p>
            <p style="text-indent:80px">return this.getTimebarName(array[i].children,path);</p>
          <p style="text-indent:60px">}else{</p>
            <p style="text-indent:80px">return false;</p>
          <p style="text-indent:60px">}</p>
        <p style="text-indent:40px">}</p>
      <p>}</p>
    `
  },{
    name:"复制",
    use:"this.$refs.copy 是一个隐藏的input标签",
    content:`
      <p>copy(content){</p>
        <p style="text-indent:40px">var value=this.$refs.copy;</p>
        <p style="text-indent:40px">value.value=content;</p>
        <p style="text-indent:40px">value.select();</p>
        <p style="text-indent:40px">document.execCommand("Copy");</p>
        <p style="text-indent:40px">alert("复制成功");</p>
      <p>} </p>
    `
  },{
    name:"excel下载",
    use:"定义公共方法即可",
    content:`
      <p>function download(params){</p>
        <p style="text-indent:40px">var option = {};</p>
        <p style="text-indent:40px">var obj = {</p>
          <p style="text-indent:60px">sheetData: [], //表格数据</p>
          <p style="text-indent:60px">sheetName: "",</p>
          <p style="text-indent:60px">sheetFilter: [],</p>
          <p style="text-indent:60px">sheetHeader: []</p>
        <p style="text-indent:40px">};</p>
        <p style="text-indent:40px">option.fileName = obj.sheetName = params.fileName||"暂无名称";</p>
        <p style="text-indent:40px">if(!params.fileName)console.warn("传入的参数对象params中没有传入fileName--->>>暂无名称");</p>
        <p style="text-indent:40px">obj.columnWidths=new Array(obj.sheetHeader.length).fill("").map((val)=>8)</p>
        <p style="text-indent:40px">obj.sheetFilter = params.add.sheetFilter || ["test","test1"];</p>
        <p style="text-indent:40px">obj.sheetHeader = params.add.sheetHeader || ["腾腾","真帅"];</p>
        <p style="text-indent:40px">obj.sheetData=[...(params.data||[{test:"tt",test1:"帅气"}])]</p>
        <p style="text-indent:40px">if(!params.data)console.warn("传入的参数对象params中没有传入data--->>>[{test:\"tt\",test1:\"帅气\"}]");</p>
        <p style="text-indent:40px">option.datas=[obj]</p>
        <p style="text-indent:40px">var toExcel = new ExportJsonExcel(option); //new</p>
        <p style="text-indent:40px">toExcel.saveExcel(); //保存</p>
        <p style="text-indent:40px">return</p>
      <p>}</p> 
      `
  },{
    name:"数字大写",
    use:"直接调用方法",
    content:`
      <p>toUp(word){</p>
        <p style="text-indent:40px">switch (word) {</p>
          <p style="text-indent:60px">case "0": return "零"</p>
          <p style="text-indent:60px">case "1": return "壹"</p>
          <p style="text-indent:60px">case "2": return "贰"</p>
          <p style="text-indent:60px">case "3": return "叁"</p>
          <p style="text-indent:60px">case "4": return "肆"</p>
          <p style="text-indent:60px">case "5": return "伍"</p>
          <p style="text-indent:60px">case "6": return "陆"</p>
          <p style="text-indent:60px">case "7": return "柒"</p>
          <p style="text-indent:60px">case "8": return "捌"</p>
          <p style="text-indent:60px">case "9": return "玖"</p>
        <p style="text-indent:40px">}</p>
      <p>}</p>
    `
  },{
    name:"时间转换为 天 ,小时 ,分钟 ,秒",
    use:"",
    content:`
      <p>formatTime(val) {</p>
        <p style="text-indent:40px">var day = Math.floor(val / (3600 * 24));</p>
        <p style="text-indent:40px">var hour = Math.floor((val % (3600 * 24)) / 3600);</p>
        <p style="text-indent:40px">var minute = Math.floor(((val % (3600 * 24)) % 3600) / 60);</p>
        <p style="text-indent:40px">var second = Math.floor(((val % (3600 * 24)) % 3600) % 60);</p>
        <p style="text-indent:40px">return [day,"天",hour,"小时",minute,"分",second,"秒"].join().replace(/\,/g,"")</p>
      <p>},</p>
    `
  },{
    name:"监听手机返回键",
    use:"在vue中使用，其他使用情况自行变换",
    content:`
      <p>if(window.history && window.history.pushState){</p>
        <p style="text-indent:40px">window.addEventListener("popstate",function(){</p>
          <p style="text-indent:60px">console.log("你点击了返回键")</p>
        <p style="text-indent:40px">})</p>
      <p>}</p>
    `
  },{
    name:"使用input[file]打开手机相机、摄像、录音",
    use:"",
    content:`
      <p><<span>input type="file" accept="image/*" capture="camera"</span>></p>
      <p><<span>input type="file" accept="video/*" capture="camcorder"</span>></p>
      <p><<span>input type="file" accept="audio/*" capture="microphone"</span>></p>
    `
  },{
    name:"图片压缩",
    use:"imgUrl是需要压缩的图片地址base64",
    content:`
      <p>function littleImg(imgUrl,height,width){</p>
        <p style="text-indent:40px">var img=new Image()</p>
        <p style="text-indent:40px">var canvas = document.createElement('canvas');</p>
        <p style="text-indent:40px">var context = canvas.getContext('2d');</p>
        <p style="text-indent:40px">img.src=imgUrl</p>
        <p style="text-indent:40px">img.onload=function(){</p>
          <p style="text-indent:60px">// 图片原始尺寸</p>
          <p style="text-indent:60px">var originWidth = this.width;</p>
          <p style="text-indent:60px">var originHeight = this.height;</p>
          <p style="text-indent:60px">// 最大尺寸限制</p>
          <p style="text-indent:60px">var maxWidth = width||200, maxHeight = height||200;</p>
          <p style="text-indent:60px">// 目标尺寸</p>
          <p style="text-indent:60px">var targetWidth = originWidth</p>
          <p style="text-indent:60px">var targetHeight = originHeight;</p>
          <p style="text-indent:60px">// 图片尺寸超过400x400的限制</p>
          <p style="text-indent:60px">if (originWidth > maxWidth || originHeight > maxHeight) {</p>
              <p style="text-indent:80px">if (originWidth / originHeight > maxWidth / maxHeight) {</p>
                <p style="text-indent:100px">  // 更宽，按照宽度限定尺寸</p>
                <p style="text-indent:100px">  targetWidth = maxWidth;</p>
                <p style="text-indent:100px">  targetHeight = Math.round(maxWidth * (originHeight / originWidth));</p>
              <p style="text-indent:80px">} else {</p>
                <p style="text-indent:100px">  targetHeight = maxHeight;</p>
                <p style="text-indent:100px">  targetWidth = Math.round(maxHeight * (originWidth / originHeight));</p>
              <p style="text-indent:80px">}</p>
          <p style="text-indent:60px">}</p>
          <p style="text-indent:60px">// canvas对图片进行缩放</p>
          <p style="text-indent:60px">canvas.width = targetWidth;</p>
          <p style="text-indent:60px">canvas.height = targetHeight;</p>
          <p style="text-indent:60px">// 清除画布</p>
          <p style="text-indent:60px">context.clearRect(0, 0, targetWidth, targetHeight);</p>
          <p style="text-indent:60px">// 图片压缩</p>
          <p style="text-indent:60px">context.drawImage(img, 0, 0, targetWidth, targetHeight);</p>
          <p style="text-indent:60px">var final= canvas.toDataURL("image/jpeg")</p>
        <p style="text-indent:40px">}</p>
      <p>}</p>
    `
  },{
    name:"判断平台类型",
    content:`
      <p>checkPcOrPhone(){</p>
        <p style="text-indent:40px">return /Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)?"phone":"pc"</p>
      <p>},</p>
    `
  },{
    name:"使用aysnc处理异步",
    use:`部分浏览器对promise和async不支持，直接引入babel-polyfill即可`,
    content:`
      <p>async orderThis(array,callback){</p>
        <p style="text-indent:40px">var array=(array||[]).push(callback)</p>
        <p style="text-indent:40px">for(var func of array){</p>
          <p style="text-indent:60px">await func()</p>
        <p style="text-indent:40px">}</p>
      <p>}</p>
    `
  }
]

export default data